This invention relates to data communication systems for conveying information in the form of addressed data packets, such as Ethernet packets, and more particularly relates to the construction and manner of operation of a stackable unit which may be connected to other similar units and wherein a communication trunk may be connected to ports distributed among the units forming a stack. The main object of the invention is to facilitate an increase in the number of ports which can be members of the trunk connection.
(a) Stackable Units.
It is well known to provide multi-port network units, such as switches, routers and hubs, which can be xe2x80x98stackedxe2x80x99, that is to say connected so that a multiplicity of such units form effectively a single larger unit composed of modules each constituted by one of the stackable units The term xe2x80x98stackxe2x80x99 arises because frequently, though not necessarily, the units are physically designed so that they may be stacked one above the other. The facility of xe2x80x98stackingxe2x80x99 is very useful in the organisation of networks because it allows for expansion and scaling, though various difficulties are present. Among these is the general inability of a unit in a stack to hold information enabling a determination within that unit of the state or configuration of another stack, A specific example of such a difficulty will be further explained later. Furthermore, certain forwarding rules need to be obeyed to avoid excessive or unnecessary forwarding of packets or duplicates of packets throughout the stack.
(b) Cascades.
In order to enable the forwarding of packets from one unit in a stack to the other units in a stack and vice versa, it is common to provide a connection known as a xe2x80x98cascadexe2x80x99. This comprises a connection between certain ports, at least one for each unit, so as to provide the physical means by which packets which may be received at one unit in a stack are forwarded prior to ultimate dispatch from the stack. Cascades may be in comparatively simple form, wherein for example cable connections between specified ports, known as xe2x80x98cascade portsxe2x80x99 connect the units in a stack. Alternatively they may be more sophisticated, including ring transmission systems with arbitrated access, such as for example described in GB patent application number 2338155 It is known in, for example, a stackable switch, to provide a xe2x80x98logicalxe2x80x99 port which is treated as a destination port by that switch for packets which have to be transmitted via the cascade to another unit. The concept of a logical port is useful when a unit has more than one port connected to the cascade, in such a case a packet which is directed to the xe2x80x98logicalxe2x80x99 cascade port is subject to some further logic process in order to determine the physical port from which it should be forwarded onto the cascade.
(c) Trunks.
Another feature in modern network practice is a xe2x80x98trunkxe2x80x99 or xe2x80x98trunk connectionxe2x80x99. Such a connection is useful where the expected traffic from one network unit to another is substantially greater than can be accommodated by a single link. The trunk connection is in essence a set of parallel paths from at least one remote unit to a multiplicity of ports. In its simplest form, the trunk connection is made to a multiplicity of ports on a single unit, so that the total bandwidth available for the trunk is generally the aggregate of the bandwidths available to each of the ports which are xe2x80x98membersxe2x80x99 of the trunk connection.
However, with the development of stackable units it is also desirable (and known practice) to make ports of different units within a stack members of the trunk. This presents some difficulties of organisation. More particularly, if (as in the case of a switch) a look-up in a database of the destination of a packet indicates that the packet should be forwarded to a remote device which is connected to the stack by way of a trunk, a further determination is necessary or desirable in order to determine which member port of the trunk should be selected for forwarding the packet on a trunk. Some stackable units are subject to a xe2x80x98local forwardingxe2x80x99 rule governing the switching engines such that if a packet is received by a particular unit and is intended for the trunk then it must be forwarded from a port on that unit which is a member of the trunk. However, such a restriction is not desirable in practice. Additionally, it is generally desirable to provide balancing of the traffic passing through the various members of the trunk and for this purpose it is customary to perform some operation such as hashing on a section of the packet. It may be desirable to perform the hash on a section of the packet that indicates packet flowxe2x80x94e.g. to perform a hash operation on both the MAC destination address and MAC source address. The result of this hash operation will provide a pointer to a register that contains forwarding information for that packet. That forwarding information includes an identification (such as a port number) of each port on that unit which is a member of the trunk. However, as will be seen later, since the unit cannot conveniently hold information concerning which ports on other units are members of the trunk, it is necessary for the storage register or the equivalent which is accessed when a packet is destined for the trunk to identify trunk ports which are not local to the relevant unit as xe2x80x98cascadexe2x80x99 ports, so that the packet will be forwarded by way of the cascade to another unit in the stack. The information in these resisters must be co-related, such that the entries in the units"" registers that contains the port numbers of the trunk are consistent across the stack. A location in such a register that in one unit contains a local port of the trunk must contain the cascade port in all the other units in the stack. The need to denote the other trunk ports, that is to say the trunk ports which are not local to a given unit, as cascade ports, severely restricts the number of ports that can be members of the trunk and inhibits scaling of the system.
The present invention is based on the provision within a stackable unit of a means, such as a register, which may be accessed when a unit determines that a packet should be sent to the trunk, and includes an identification of each of the units which can be selected for forwarding the packet.
The identity returned by this register will determine whether the packet will be forwarded from a local trunk port or needs to be forwarded by way of the cascade to another unit. Such a register can be used in conjunction with a further register identifying specific ports. As will be seen this facility substantially increases the number of ports that can be members of the trunk
Further features of the invention will be apparent from the following description and drawings.